1. Field of the Invention
The present invention generally relates to parallel processing and more particularly relates to systems and methods for tracking resources during parallel processing.
2. Related Art
Parallel processing engages the concurrent use of multiple processors to solve large computational problems. Since solving large problems often requires significant time with a single processor, parallel processing allows such problems to be distributed amongst multiple processors, with each of which solving only a portion of the problem in a fraction of the time.
However, parallel processing presents significant challenges. For example, a complex task scheduler is required to efficiently distribute problem components between the multiple processors, memory resources must be properly allocated and shared, and messages must pass between the processors.
However, conventional task schedulers are inadequate for efficient parallel processing. Conventional task schedulers perform two functions: 1) tracking of resources, and 2) providing the policies by which tasks are mapped to, and hence evaluated by, resources. Unfortunately, in conventional task schedulers no clear delineation exists between tracking resources, on one hand, and the manner by which those resources are utilized, on the other. This means that a conventional task scheduler, once online, must always be online. This results in conventional parallel processing that is limited to only a single session, which also must always be online. This also results in conventional parallel processing that operates with a single set of policies within the single session.
One proposed solution is to invoke multiple sessions, each running a distinct task scheduler and implementing a different set of policies. This method is highly disadvantageous since 1) there may be a long latency time involved in obtaining the resources in the first place when the session is invoked, and 2) there is no guarantee that another session will not seize some or all of the resources the new session needs during that open time window between when the first session is killed and the new session is invoked. Thus, any solution that requires that sessions compete with each other for the same resources will significantly decrease the efficiency of the overall parallel processing system.
Another proposed solution is to work within the bounds of the tightly coupled, single session/single task scheduler/single policy scenario, but to augment the task scheduler's policy to take into account the new requirements. This method is also highly disadvantageous because the policy enforced by a task scheduler is already highly complex. For example, it must account for race conditions as a result of premature terminations, among other things. Because of the highly complex nature of the policy, a solution that requires the policy to be even more complex is highly undesirable, especially when the new policy is tangential or even incompatible with the existing policy.
Therefore, what is needed is a system and method that overcomes these significant problems found in conventional parallel processing systems as described above.